1. Field of the Invention
This invention relates to a server with network-based remote access and server management functions, and in particular, it relates to such a server requiring a reduced number of network connections.
2. Description of the Related Art
A KVM (keyboard video mouse) switch is a device that allows one or more user consoles to selectively communicate with one or more computers connected to the KVM switch. In a conventional KVM switch configuration, one or more consoles (each including a keyboard and/or mouse and a display device) are connected to the KVM switch by cables, and a plurality of computers (e.g. servers or PCs) are connected to the KVM switch by cables. A network-enabled KVM switch (sometimes referred to as a network-based or IP-based KVM switch or an iKVM switch, and the technology is sometimes referred to KVM over IP) uses a network protocol (e.g. TCP/IP) as its communication protocol, and can be accessed from any computer on a network (such as a WAN, LAN, the Internet, Intranet, Ethernet, wireless network, etc.) A remote operator can log in to an iKVM switch from anywhere on the network via a browser, and can exchange keyboard, video and mouse signals with any one of the computers connected to the iKVM switch. An iKVM switch has a controller, referred to as an iKVM controller, which is connected to a controller/circuit/chip (NIC) for handling packets containing keyboard and mouse signals received from a remote console on a network, and transmits packets containing video signals and other signals to the network via the NIC.
More generally, a server (including a KVM switch) with network-based remote access functions allows a remote console located on a network to communicate with and control the server using a network protocol (e.g. TCP/IP) as its communication protocol. Once logged in to the server, the remote console can exchange keyboard, video and mouse signals with the server and control the server as if the remote console is directly connected to the server. Such network-based remote server access is generally referred to in this disclosure as an iKVM or KVM over IP function of the server.
IPMI (Intelligent Platform Management Interface) is a specification that defines a set of common interfaces to computer hardware and firmware which system administrators can use to monitor system health and manage the system. The IPMI technology allows the monitoring of server hardware health related factors including CPU temperature, voltage, fan speed, etc. IPMI operates independently of the operating system, and runs on a dedicated controller called the BMC (Baseboard Management Controller) and other satellite controllers. The IPMI system communicates with a remote management console using messages transferred between the BMC and the remote management console over a network such as an Ethernet LAN or other network. The IPMI messages are encapsulated into packets at the LAN controller and sent out on the network. Widely used on servers and other devices, IPMI is quickly becoming a computer industry standard for troubleshooting and failure prevention.
FIGS. 1-3 illustrate configurations of a server with iKVM (network-based remote access) and server management such as IPMI (Intelligent Platform Management Interface) functions. From the standpoint of network connection, as schematically illustrated in FIG. 1, a server 100 with iKVM and server management (such as IPMI) functions can be considered as having three sections each requiring a connection to the network: the system section, the iKVM section, and the IPMI section. The iKVM section includes an iKVM controller 120 that handles the functions related to network-based remote access to the server; the IPMI section includes a BMC (Baseboard Management Controller) 130 that handles Server management functions; the system section 110 includes the portion of the server that performs various data processing functions of the server, such as a CPU, memory, etc. FIG. 1 shows a conventional configuration of a server with iKVM and Server management functions, where the system section 110 is connected to the network by a network interface controller/circuit/chip (NIC) 112 for the system, the iKVM controller 120 is connected to the network by a NIC 122 for the iKVM, and the IPMI section (the BMC) 130 is connected to the network by a NIC 132 for the BMC. Each NIC 112, 122, 132 is connected to a network connector, such as an RJ45 connector, for receiving a network communication cable. Thus, three network connectors and three network communication cables are be required for the server using this configuration. (For brevity, in the present disclosure and claims, the term “network interface controller” is used to refer to what is commonly called “network interface controller”, “network interface circuit”, or “network interface controller chip”, commonly abbreviated as NIC.)
Certain commercially available NICs provide a management channel (also referred to as a sideband) in addition to a main channel, and use the management channel to transmit management data. Using such a NIC allows the BMC to share the network connection of the system. In a server 200 adopting such a configuration, schematically illustrated in FIG. 2, the NIC 212 for the system has a management channel capable of handling the IPMI data. The NIC 232 for the BMC is connected to the management port of the NIC 212 for the system via a sideband connection 214, rather than connected to the network directly. The NIC 212 for the system detects incoming packets from the network; if the incoming packets are management packets (such as IPMI format packets), they are delivered to the NIC 232 which transmits them to the BMC 230. If the incoming packets are not management packets, they are sent to the system section 210. The BMC uses the NIC 212 for the system to transmit management packets to the network. Some examples of the NIC 212 include Intel 82541 and 82571 NIC. In FIG. 2, the connection and function of the iKVM controller 220 and the NIC 222 for the iKVM are the same as those of the corresponding components in the configuration of FIG. 1. Each NIC 212, 222 is connected to a network connector, and two network connectors and two network cables are required for this configuration. Although in FIG. 2 the NIC 232 for BMC is shown as a separate component, the NIC 232 may be omitted, or it may be in the same chip as the BMC 230.
Similarly, certain commercially available NICs provide the ability to transmit iKVM data (e.g., keyboard, video and mouse data) via the management channel of the NIC. Using such a NIC allows the iKVM controller to share the network connection of the system. In a server 300 adopting such a configuration, schematically illustrated in FIG. 3, the NIC 312 for the system has a management channel capable of handling the iKVM data. The NIC 322 for the iKVM controller 320 is connected to the management port of the NIC 312 for the system via a sideband connection 314, rather than connected to the network directly. Different IP addresses or MAC addresses can be used to separate different network traffic. The NIC 312 for the system detects incoming packets from the network; if the incoming packets have IP addresses or MAC addresses for the iKVM controller 320, they are delivered to the NIC 322 which transmits them to the iKVM controller 320. If the incoming packets have IP addresses or MAC addresses for the system section, they are sent to the system section 310. The iKVM controller 320 uses the NIC 312 for the system to transmit iKVM packets the network. In FIG. 3, the connection and function of the BMC 330 and the NIC 332 for the BMC are the same as those of the corresponding components in the configuration of FIG. 1. Each NIC 312, 332 is connected to a network connector, and two network connectors and two network cables are required. Although in FIG. 3 the NIC 322 for iKVM is shown as a separate component, the NIC 322 may be omitted, or it may be in the same chip as the iKVM 320.
In the configurations shown in FIGS. 2 and 3, the management channels (sidebands) in the NICs 212 and 312 are different due to the different requirements for transmitting iKVM data and IPMI messages. The iKVM traffic is typically heavier than the IPMI traffic and needs a sideband bus with a higher capacity. Due to these differences, it is difficult for both the iKVM controller and the BMC to share the same NIC for the system. Because sidebands for iKVM and BMC have different types, these two kinds of traffics could not be merged together.